let a = 99;
// a = true; //ts会根据你之前定义变量时初始化的值的类型推断该变量应该是什么类型,然后进行判断
let b:any;
b = 16;
b = 'xxx'
b = true

let d:unknown
d = 16
d = ''
d = true

/*
    JavaScript中的类型
        string 字符串
        number 数值类型
        boolean 布尔类型
        null 空类型
        undefined 未定义的类型
        object 对象类型
            |-Array
            |-Function
            |-Date
        bigint 大整数类型
        symbol
    TypeScript中的类型
        1、以上所有JavaScript的类型
        2、
            void : 空或undefined
            never : 不能是任何值,没有值,基本不用，因为定义了变量没有意义
            unknown : 未知类型,就是一种类型安全的any, 如果你不知道这个变量具体的什么类型,需要后期确定,就可以使用它
            any : 任意类型 一旦把变量类型设置为any,那么就意味着你放弃了对这个变量的类型检查
            enum : 枚举
            tuple : 元组 (固定长度的数组,就是跟java的数组差不多)
        3、
            type 
            interface
 */
let aa:void
aa=undefined
// aa=null;   //ts类型检查的【严格模式】下,void类型的值是不能赋值为null的

//为数组定义长度,并为每个元素定义类型
let myT:[string,number,boolean,string,number]

myT=['aaa',16,true,"",16]